Ponder.registry(event => {
    event.create([
        "createdelight:big_centrifuge",
        "createdelight:centrifuge_rotor"
    ])
        .scene(
            "createdelight:big_centrifuge",
            "大型离心机",
            "createdelight:ponder_big_centrifuge",
            
            (builder, util) => {
                let scene = new $CreateSceneBuilder(builder)
                scene.showBasePlate()
                scene.idle(20)
                scene.text(40, "先让我们快速的搭建一下基础结构").attachKeyFrame()
                scene.idle(40)
                for (let i = 0; i < 7; i++) {
                    scene.world.showSection([2, i + 1, 2, 6, i + 1, 6], Direction.DOWN)
                    scene.idle(10)
                }
                scene.text(40, "OK,搭建完毕!").attachKeyFrame()
                scene.idle(40)
                scene.text(40, "在这个多方块结构中, 任意的钢制机壳都可以被钢制输入/输出总线代替", [2, 3.5, 4.5]).attachKeyFrame()
                scene.world.replaceBlocks([2, 3, 4], Block.id("createdelight:steel_export_bus").blockState.trySetValue($BlockStateProperties.FACING, Direction.WEST), true)
                scene.world.replaceBlocks([2, 6, 4], Block.id("createdelight:steel_export_bus").blockState.trySetValue($BlockStateProperties.FACING, Direction.WEST), true)
                scene.idle(40)
                scene.rotateCameraY(90)
                scene.text(40, "在这个多方块结构中, 任意的钢制机壳都可以被钢制输入/输出总线代替", [7, 3.5, 4.5])
                scene.world.replaceBlocks([6, 3, 4], Block.id("createdelight:steel_export_bus").blockState.trySetValue($BlockStateProperties.FACING, Direction.EAST), true)
                scene.world.replaceBlocks([6, 6, 4], Block.id("createdelight:steel_export_bus").blockState.trySetValue($BlockStateProperties.FACING, Direction.EAST), true)
                scene.idle(40)
                scene.rotateCameraY(90)
                scene.text(40, "在这个多方块结构中, 任意的钢制机壳都可以被钢制输入/输出总线代替", [4.5, 3.5, 7])
                scene.world.replaceBlocks([4, 3, 6], Block.id("createdelight:steel_export_bus").blockState.trySetValue($BlockStateProperties.FACING, Direction.SOUTH), true)
                scene.world.replaceBlocks([4, 6, 6], Block.id("createdelight:steel_export_bus").blockState.trySetValue($BlockStateProperties.FACING, Direction.SOUTH), true)
                scene.idle(40)
                scene.rotateCameraY(180)
                scene.idle(40)
                scene.addKeyframe()
                scene.text(40, "此处为应力输入口, 转速至少为32", [4.5, 3, 4.5])
                scene.world.hideSection([2, 3, 2, 6, 7, 6], Direction.UP)
                scene.idle(40)
                scene.text(40, "配方速度随转速增加而线性增加, 当转速达到256时配方速度*4", [4.5, 3, 4.5])
                scene.idle(40)
                scene.world.showSection([2, 3, 2, 6, 7, 6], Direction.DOWN)
                scene.idle(25)
                scene.addKeyframe()
                scene.overlay.showOutline("blue", {}, [3, 3, 2, 5, 6, 2], 40)
                scene.overlay.showOutline("blue", {}, [2, 4, 3, 2, 5, 5], 40)
                scene.overlay.showOutline("blue", {}, [6, 4, 3, 6, 5, 5], 40)
                scene.overlay.showOutline("blue", {}, [2, 3, 3], 40)
                scene.overlay.showOutline("blue", {}, [2, 6, 3], 40)
                scene.overlay.showOutline("blue", {}, [2, 3, 5], 40)
                scene.overlay.showOutline("blue", {}, [2, 6, 5], 40)
                scene.overlay.showOutline("blue", {}, [6, 3, 3], 40)
                scene.overlay.showOutline("blue", {}, [6, 6, 3], 40)
                scene.overlay.showOutline("blue", {}, [6, 3, 5], 40)
                scene.overlay.showOutline("blue", {}, [6, 6, 5], 40)
                scene.text(40, "其中的钢制通透玻璃机壳也可以使用钢制玻璃机壳/普通钢制机壳", [4, 4.5, 2.5])
                scene.world.replaceBlocks([3, 3, 2, 5, 6, 2], Block.id("createdelightcore:steel_glass_casing").blockState, true)
                scene.world.replaceBlocks([2, 4, 3, 2, 5, 5], Block.id("createdelightcore:steel_casing").blockState, true)
                scene.world.replaceBlocks([2, 3, 3], Block.id("createdelightcore:steel_casing").blockState, true)
                scene.world.replaceBlocks([2, 6, 3], Block.id("createdelightcore:steel_casing").blockState, true)
                scene.world.replaceBlocks([2, 3, 5], Block.id("createdelightcore:steel_casing").blockState, true)
                scene.world.replaceBlocks([2, 6, 5], Block.id("createdelightcore:steel_casing").blockState, true)
                scene.idle(40)
                scene.world.replaceBlocks([3, 3, 2, 5, 6, 2], Block.id("createdelightcore:steel_clear_glass_casing").blockState, false)
                scene.world.replaceBlocks([2, 4, 3, 2, 5, 5], Block.id("createdelightcore:steel_clear_glass_casing").blockState, false)
                scene.world.replaceBlocks([2, 3, 3], Block.id("createdelightcore:steel_clear_glass_casing").blockState, false)
                scene.world.replaceBlocks([2, 6, 3], Block.id("createdelightcore:steel_clear_glass_casing").blockState, false)
                scene.world.replaceBlocks([2, 3, 5], Block.id("createdelightcore:steel_clear_glass_casing").blockState, false)
                scene.world.replaceBlocks([2, 6, 5], Block.id("createdelightcore:steel_clear_glass_casing").blockState, false)
                scene.idle(40)
                scene.addKeyframe()
                scene.world.hideSection([3, 3, 2, 5, 7, 2], Direction.NORTH)
                scene.world.hideSection([2, 3, 3, 2, 7, 5], Direction.WEST)
                scene.world.hideSection([3, 6, 3, 5, 7, 5], Direction.UP)
                // scene.world.hideSection([6, 3, 3, 5, 7, 5], Direction.EAST)
                // scene.world.hideSection([3, 3, 6, 5, 7, 5], Direction.SOUTH)
                scene.text(40, "注意, 离心机转子扭矩为64", [4.5, 4.5, 4.5])
                scene.idle(40)
                scene.text(140, "离心机基础并行数为16")
                scene.text(140, "其中离心机转子可以叠加, 最少一层, 最多三层, 每层离心机转子使得配方速度*4, 且可与转速叠加", [4.5, 4.5, 4.5])
                scene.idle(20)
                let top = scene.world.makeSectionIndependent([4, 5, 4, 4, 5, 4])
                scene.world.hideSection([4, 4, 4], Direction.EAST)
                scene.idle(20)
                scene.world.moveSection(top, [0, -1, 0], 15)
                scene.idle(40)
                scene.world.moveSection(top, [0, 2, 0], 15)
                scene.idle(20)
                scene.world.showSection([4, 4, 4, 4, 5, 4], Direction.EAST)
                scene.idle(40)
                scene.world.hideSection([4, 3, 4, 4, 5, 4], Direction.UP)
                scene.world.hideIndependentSection(top, Direction.UP)
                scene.idle(20)
                scene.world.showSection([3, 3, 2, 5, 7, 2], Direction.SOUTH)
                scene.world.showSection([2, 3, 3, 2, 7, 5], Direction.EAST)
                scene.world.showSection([3, 3, 3, 5, 7, 5], Direction.DOWN)
                scene.idle(20)
                scene.markAsFinished()
            })
        .scene(
            "createdelight:using_big_centrifuge",
            "大型离心机的使用",
            "createdelight:ponder_big_centrifuge_use",
            
            (builder, util) => {
                let scene = new $CreateSceneBuilder(builder)
                scene.showBasePlate()
                scene.idle(20)
                scene.text(40, "现在让我们来学习一下如何使用大型离心机").attachKeyFrame()
                scene.idle(40)
                scene.world.showSection([2, 1, 2, 6, 7, 6], Direction.DOWN)
                scene.idle(20)
                scene.text(40, "首先你需要几个输入/输出总线...", [2, 2.5, 4.5]).attachKeyFrame()
                scene.world.replaceBlocks([2, 2, 4], Block.id("createdelight:steel_export_bus").blockState.trySetValue($BlockStateProperties.FACING, Direction.WEST), true)
                scene.idle(20)
                scene.rotateCameraY(90)
                scene.idle(20)
                scene.world.replaceBlocks([6, 2, 4], Block.id("createdelight:steel_import_bus").blockState.trySetValue($BlockStateProperties.FACING, Direction.EAST), true)
                scene.idle(20)
                scene.rotateCameraY(-90)
                scene.idle(20)
                scene.text(40, "然后将输入/输出总线接入你的工厂").attachKeyFrame()
                scene.world.showSection([1, 2, 4], Direction.EAST)
                scene.idle(20)
                scene.rotateCameraY(90)
                scene.idle(20)
                scene.world.showSection([7, 2, 4, 9, 1, 5], Direction.WEST)
                scene.idle(20)
                scene.text(40, "输入你要离心的材料(这里用污浊铁粉做示范)").attachKeyFrame()
                scene.idle(45)
                scene.showControls(40, [8.5, 1.5, 4.6], "up").withItem("createmetallurgy:dirty_iron_dust")
                scene.text(40, "输入污浊铁粉")
                let dirty_iron_dust = scene.world.createItemEntity(
                    [8.5, 4, 4.5],
                    [0, 0, 0],
                    "64x createmetallurgy:dirty_iron_dust"
                )
                scene.idle(10)
                PonderUtil.removeEntity(scene, dirty_iron_dust)
                PonderUtil.createItemOnBelt(scene, [8, 1, 4], Direction.UP, Item.of("64x createmetallurgy:dirty_iron_dust"))
                scene.idle(20)
                PonderUtil.flapFunnel(scene, [7, 2, 4], false)
                PonderUtil.setKineticSpeed(scene, [4, 2, 4, 4, 5, 4], 128)
                PonderUtil.removeItemsFromBelt(scene, [7, 1, 4])
                scene.idle(40)
                scene.rotateCameraY(-90)
                scene.idle(40)
                PonderUtil.multiplyKineticSpeed(scene, [4, 2, 4, 4, 5, 4], 1/2)
                scene.idle(2)
                PonderUtil.multiplyKineticSpeed(scene, [4, 2, 4, 4, 5, 4], 1/2)
                scene.idle(2)
                PonderUtil.multiplyKineticSpeed(scene, [4, 2, 4, 4, 5, 4], 1/2)
                scene.idle(2)
                PonderUtil.multiplyKineticSpeed(scene, [4, 2, 4, 4, 5, 4], 0)
                scene.text(40, "等待一段时间后, 产出铁粉及其副产物").attachKeyFrame()
                scene.idle(20)
                scene.showControls(40, [1.5, 2.5, 4.6], "down").withItem('createmetallurgy:iron_dust')
                PonderUtil.flapFunnel(scene, [1, 2, 4], true)
                scene.world.createItemEntity(
                    [1.5, 2.3, 4.5],
                    [0, 0, 0],
                    "64x createmetallurgy:iron_dust"
                )
                scene.idle(20)
                PonderUtil.flapFunnel(scene, [1, 2, 4], true)
                scene.world.createItemEntity(
                    [1.5, 2.3, 4.5],
                    [0, 0, 0],
                    "16x createmetallurgy:iron_dust"
                )
                scene.idle(20)
                PonderUtil.flapFunnel(scene, [1, 2, 4], true)
                scene.world.createItemEntity(
                    [1.5, 2.3, 4.5],
                    [0, 0, 0],
                    "48x minecraft:redstone"
                )
                scene.idle(5)
                scene.showControls(20, [1.5, 2.5, 4.6], "down").withItem('minecraft:redstone')
                scene.idle(20)
                scene.markAsFinished()
            })
})